import Vue from 'vue'
import Router from 'vue-router'
import axios from 'axios'
import VueAxios from 'vue-axios'

import Login from './components/Login.vue'
import Index from './components/Index.vue'
import ArticleColumn from './components/ArticleColumn.vue'
import AddCategory from './components/AddCategory.vue'
import EditCategory from './components/EditCategory.vue'

Vue.use(Router)
Vue.use(VueAxios, axios)
//Axios请求拦截器，随着业务的复杂，Axios层的使用将会越来越复杂，写个精简版的就行了。
// axios.interceptors.request.use(config => {
//     let jwt = localStorage.getItem('jwt');
//     if (jwt) {  // 判断是否存在token，如果存在的话，则每个http header都加上token
//         config.headers.Authorization = jwt;
//         console.log('interceptors config=',config)
//     }
//     return config
// }, error => {
//     return Promise.reject(error)
// })
// 配置content-type
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
// 把jwt加入header里
axios.defaults.headers.common['authorization'] = localStorage.getItem('jwt');
// 配置基础域名
axios.defaults.baseURL='http://119.29.160.115/';

// 2. 定义路由
// 每个路由应该映射一个组件。 其中"component" 可以是
// 通过 Vue.extend() 创建的组件构造器，
// 或者，只是一个组件配置对象。
// 我们晚点再讨论嵌套路由。
export default new Router({
    routes: [
        {
            path: '/login',
            name: 'login',
            component: Login
        },
        {
            path: '/',
            name: '/index',
            redirect: '/index'
        },
        {
            path: '/index',
            name: 'index',
            component: Index,
            children: [
                {
                    name: '添加栏目',
                    path: 'add_category',
                    component: AddCategory
                },
                {
                    name: '编辑栏目',
                    path: 'edit_category/:id',
                    component: EditCategory
                },
                {
                    name: '栏目列表',
                    path: 'article_column',
                    component: ArticleColumn
                }
            ]
        }
    ]
})
